package com.heima.stroke.handler.valuation;

public class StartPriceValuation implements Valuation {
    private Valuation valuation;

    public StartPriceValuation(Valuation valuation) {
        this.valuation = valuation;
    }

    @Override
    public float calculation(float km) {
        // 起步价为10元，包含3公里
        float startPrice = 10.0f;
        float baseKm = 3.0f;
        
        // 如果距离小于等于3公里，只收起步价
        if (km <= baseKm) {
            return startPrice;
        }
        
        // 超过3公里的部分，按每公里2元计算
        float extraKm = km - baseKm;
        float extraPrice = extraKm * 2.0f;
        
        // 调用装饰器链中的下一个计价器计算额外费用
        if (valuation != null) {
            extraPrice += valuation.calculation(extraKm);
        }
        
        return startPrice + extraPrice;
    }
}
